package com.sino.dao;

import java.util.List;

import com.sino.bean.Basicinfo;
import com.sino.bean.Jjxyinfo;
import com.sino.bean.Qtzk;
import com.sino.bean.Sharepeople;
import com.sino.bean.Zjclinfo;
import com.sino.bean.Zlbhzk;
import com.sino.bean.Zlintro;
import com.sino.bean.Zljszk;

/**
 * Copyright (C) : Sinodigital Tech. Co., Ltd. Project : 专利项目申请 JDK version used :
 * jdk1.5.0_08 Description : 提供基本信息DAO接口 Version : 1.0 Date : 2008.2.20
 * Modification history : 新建
 */
public interface IBasicInfoDAO {
	/**
	 * Description ：保存基本信息到数据库中
	 * 
	 * @param basicinfo
	 *            ：基本信息持久化對象
	 */
	public void saveBasicInfo(Basicinfo basicinfo);

	/**
	 * Description ：更新基本信息到数据库中
	 * 
	 * @param basicinfo
	 *            ：基本信息持久化對象
	 */
	public void updateBasicInfo(Basicinfo basicinfo);

	/**
	 * Description ：根据时间的专利号码修改密码,成功返回
	 * 
	 * @param zlid
	 *            ：实际专利编号，
	 * @param passw
	 *            ：密码
	 */
	public void updatePassw(String zlid, String passw);

	/**
	 * Description ：根据专利编号查找基本信息
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public Basicinfo findBasicinfoById(String zlId);

	/**
	 * Description ：根据专利编号查找基本信息
	 * 
	 * @param zlId
	 *            ：专利编号==实际专利号码
	 */
	public List findBasicinfoByZlId(String zlId);

	/**
	 * Description ：根据专利编号查找基本信息,查找完毕后存在返回true，不存在返回false，然后请看缓存
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public boolean validateExist(String zlId);

	/**
	 * Description ：根据专利编号查找基本信息,查找完毕后存在返回true，不存在返回false，然后请看缓存
	 * 
	 * @param zlId
	 *            ：专利编号==实际专利号码
	 */
	public boolean validateExistZlId(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存专利技术状况信息到数据库中
	 * 
	 * @param zljjzk
	 *            ：专利技术状况信息持久化對象
	 */
	public void saveZljszk(Zljszk zljszk);

	/**
	 * Description ：更新专利技术状况信息到数据库中
	 * 
	 * @param zljjzk
	 *            ：专利技术状况信息持久化對象
	 */
	public void updateZljszk(Zljszk zljszk);

	/**
	 * Description ：根据专利编号查找专利技术状况信息
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public Zljszk findZljszkByZlId(String zlId);

	/**
	 * Description ：根据专利编号查找专利技术状况信息=清除缓存
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public Zljszk findZljszkByZlIdClear(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存经济效益信息到数据库中
	 * 
	 * @param jjxyInfo
	 *            ：经济效益信息持久化對象
	 */
	public void saveJjxyInfo(Jjxyinfo jjxyInfo);

	/**
	 * Description ：更新经济效益信息到数据库中
	 * 
	 * @param jjxyInfo
	 *            ：经济效益信息持久化對象
	 */
	public void updateJjxyInfo(Jjxyinfo jjxyInfo);

	/**
	 * Description ：根据专利编号查找经济效益信息
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public List findJjxyByZlId(String zlId);

	/**
	 * Description ：根据专利编号查找经济效益信息，同时清除缓存
	 * 
	 * @param zlId
	 *            ：专利编号
	 */
	public List findJjxyByZlIdClear(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存专利保护状况信息到数据库中
	 * 
	 * @param zlbhzk
	 *            ：专利保护状况持久化對象
	 */
	public void saveZlbhzk(Zlbhzk zlbhzk);

	/**
	 * Description ：更新专利保护状况信息到数据库中
	 * 
	 * @param zlbhzk
	 *            ：专利保护状况持久化對象
	 */
	public void updateZlbhzk(Zlbhzk zlbhzk);

	/**
	 * Description ：根据专利id查找专利保护状况
	 * 
	 * @param zlId
	 *            ：专利id
	 */
	public Zlbhzk findZlbhzkById(String zlId);

	/**
	 * Description ：根据专利id查找专利保护状况，然后清除缓存
	 * 
	 * @param zlId
	 *            ：专利id
	 */
	public Zlbhzk findZlbhzkByIdClear(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存专利保护状况信息到数据库中
	 * 
	 * @param qtzk
	 *            ：其他状况持久化對象
	 */
	public void saveQtzk(Qtzk qtzk);

	/**
	 * Description ：更新专利保护状况信息到数据库中
	 * 
	 * @param qtzk
	 *            ：其他状况持久化對象
	 */
	public void updateQtzk(Qtzk qtzk);

	/**
	 * Description ：根据专利id查找其他状况
	 * 
	 * @param zlId
	 *            ：专利id
	 */
	public Qtzk findQtzkById(String zlId);

	/**
	 * Description ：根据专利id查找其他状况，然后清除缓存
	 * 
	 * @param zlId
	 *            ：专利id
	 */
	public Qtzk findQtzkByIdClear(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存其他共有专利人信息到数据库中
	 * 
	 * @param sharePeople
	 *            ：其他共有专利人持久化對象
	 */
	public void saveSharePeople(Sharepeople sharePeople);

	/**
	 * Description ：更新其他共有专利人信息到数据库中
	 * 
	 * @param sharePeople
	 *            ：其他共有专利人持久化對象
	 */
	public void updateSharePeople(Sharepeople sharePeople);

	/**
	 * Description ：根据专利Id查找专利共有人信息
	 * 
	 * @param zlId
	 *            ：专利Id
	 */
	public List findSharePeople(String zlId);

	// ---------------------------------------------------------------
	/**
	 * Description ：保存附件及证明材料目录信息到数据库中
	 * 
	 * @param zjclinfo
	 *            ：证明材料目录持久化對象
	 */
	public void saveZjcl(Zjclinfo zjclinfo);

	/**
	 * Description ：更新其他共有专利人信息到数据库中
	 * 
	 * @param zjclinfo
	 *            ：证明材料目录持久化對象
	 */
	public void updateZjcl(Zjclinfo zjclinfo);

	/**
	 * Description ：根据专利Id查找附件及证明材料目录信息
	 * 
	 * @param zlId
	 *            ：专利Id
	 */
	public List findZjcl(String zlId);

	/**
	 * Description ：根据专利Id查找附件及证明材料目录信息==清除缓存
	 * 
	 * @param zlId
	 *            ：专利Id
	 */
	public Zlintro findZjclClear(String zlId);

	// ------------------------------------------------------------------项目申报简介
	/**
	 * Description ：保存专利奖励申报项目简介
	 * 
	 * @param zlintro
	 *            ：专利简介持久化对象
	 */
	public void saveZlIntro(Zlintro zlintro);

	/**
	 * Description ：更新专利奖励申报项目简介
	 * 
	 * @param zlintro
	 *            ：专利简介持久化对象
	 */
	public void updateZlIntro(Zlintro zlintro);

	/**
	 * Description ：根据专利Id查找专利申报简介信息
	 * 
	 * @param zlId
	 *            ：专利id
	 */
	public List findZlintro(String zlId);

	public void delBasicInfo(String zlid);

	public Integer findFenShu1();

	/**
	 * 取数据库的起始时间和终止时间
	 * 
	 * @return
	 */
	public String findShuJuKuTime();

	public String findShuJuKuTime2();

}